<?php

namespace Drinkiit\BlogBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Drinkiit\UtilisateurBundle\Entity\UtilisateurApp;

use Drinkiit\BlogBundle\Controller\AdminUtilisateurController;
use Drinkiit\BlogBundle\Handler\AdminUtilisateurHandler;
use Drinkiit\BlogBundle\Form\AdminUtilisateurType;
use Drinkiit\BlogBundle\Entity\Operations;

class AdminCommandeController extends Controller
{
	public function em($objet) {
		return $this->getDoctrine()->getEntityManager()->getRepository($objet) ;
	}
	
	public function indexAction()
	{
		// on affiche juste la liste des commandes validées non payées
		$liste_commandes = $this->em('DrinkiitBlogBundle:Commande')->findBy( array('est_payee' => false, 'validee' => true, 'est_menu' => false), array('date_commande' => 'desc')) ;
		
		$this->get('logger')->info("[INFO] Liste des ".count($liste_commandes)." commandes validées mais non payées.") ;
		return $this->render('DrinkiitBlogBundle:Admin:Commande.html.twig', array(
			'titre' => 'Gestion des commandes non payées',
			'liste_commandes' => $liste_commandes,
		));
	}
	
	public function commande_payeeAction($id_comm)
	{
		// si on a cliqué sur commande payée
		
		$operation = new Operations() ; // on créer une nouvelle opération
		$commande = $this->em('DrinkiitBlogBundle:Commande')->find($id_comm) ; // on récupère la commande à payer
		
		$user = $commande->getUtilisateurCommande() ; // on récupère l'user de cette commande
		$commande->setEstPayee(true) ; // on valide aussi la commande
		$operation->setDate(new \DateTime("now")) ; // pour maintenant l'opération
		$operation->setOperationUtilisateur($user) ; // on l'associe à l'opération
		$operation->setOperation( $commande->getPrix() * 100 ) ; // parce que l'on entre des entier et que l'on revoit des money
		
		$this->getDoctrine()->getEntityManager()->persist($operation);
        $this->getDoctrine()->getEntityManager()->flush();
        $test = new AdminUtilisateurController() ;
        
        return $this->redirect( $this->generateUrl('admin_management_one_user', array( 'id' => $user->getId(), 'notification' => "Commande n°".$commande->getId()." a bien été payée.") ) );
		//return $test->one_userAction($user->getId(), "Commande n°".$commande->getId()." a bien été payée.") ;
	}
}
